<template>
  <div id="app">
    <a-config-provider :getPopupContainer="getPopupContainer" :locale="locale">
      <router-view></router-view>
    </a-config-provider>
  </div>
</template>
<script>
import zh from 'ant-design-vue/lib/locale-provider/zh_CN'

export default {
  name: 'App',
  data() {
    return {
      // 弹出框之类的默认渲染节点
      getPopupContainer: () => document.body,
      // 国际化，要求中文
      locale: zh
    }
  },
  created() {
    //处理vuex刷新页面后数据丢失问题
    //在页面加载时读取sessionStorage里的状态信息
    if (sessionStorage.getItem('store')) {
      this.$store.replaceState(
        Object.assign(
          {},
          this.$store.state,
          JSON.parse(sessionStorage.getItem('store'))
        )
      )
    }
    //在页面刷新时将vuex里的信息保存到sessionStorage里
    window.addEventListener('beforeunload', () => {
      sessionStorage.setItem('store', JSON.stringify(this.$store.state))
    })
  }
}
</script>
<style lang='less'>
#app {
  height: 100%;
}
</style>
